import { MessageBox } from "element-ui";
import store from "@/store/index";
import router from "@/router";
import { $v } from "@/utils/public";
import { openWindow } from "@/utils/common";
/**
 * 退出登录
 */
export function logout() {
  try {
    // 尝试关闭插件并隐藏插件界面
    window.sendPlugInMessage(false);
    window.plugInHide();
  } catch (e) {
    // 插件
  }

  // 获取之前存储的返回URL
  const returnUrl = sessionStorage.getItem("returnUrl");

  // 显示确认退出的弹窗
  MessageBox.confirm("确定退出系统吗？", "提示", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",
    type: "warning",
  })
    .then(() => {
      // 清除本地存储中的过期标志
      localStorage.removeItem("expireFlag");
      // 提交mutation修改Vuex状态，关闭租户窗口
      store.commit("SET_TENANT_WINDOW", false);
      // 提交mutation修改Vuex状态，关闭tower窗口
      store.commit("SET_TOWER_WINDOW", false);
      // 提交mutation修改Vuex状态，设置获取信息状态为false
      store.commit("SET_INFOGETSTATE", false);
      // 清除本地存储中的租户信息
      localStorage.removeItem("tenantInfo");
      // 关闭socket连接
      $v.socketClose();
      // 派发action进行登出操作
      store.dispatch("LogOut").then(() => {
        // 派发action进行联邦登出操作
        store.dispatch("FedLogOut");
        // 判断是否有returnUrl, 有则退出返回中心节点
        if (returnUrl) {
          openWindow(`${returnUrl}?switchLogOutFlag=true`);
        } else {
          // 没有returnUrl则跳转到登录页面
          router.replace({ path: "/login" }).then();
        }
      });
    })
    .catch(() => {
      try {
        // 尝试显示插件并显示插件界面
        window.sendPlugInMessage(true);
        window.plugInShow();
      } catch (e) {
        // 插件
      }
    });
}

/**
 * 关闭选择行业弹窗
 */
export function closeIndustryWindow() {
  // 查询具有class "choose-industry" 的div元素
  const element = document.querySelector("div.choose-industry");

  // 如果找到了这个元素，则将其删除
  if (element) {
    element.remove();
  }
}
